Skip to content

Commit 0012a35

Browse files
committed
fix: move keccak256 to signRawECDSAMessage
1 parent 6ba7ebb commit 0012a35

4 files changed

Lines changed: 9 additions & 10 deletions

File tree

sdk/src/client/signer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ export class SessionKeyStateSigner implements StateSigner {
8181
}
8282

8383
async signState(channelId: Hex, state: State): Promise<Hex> {
84-
const stateHash = getStateHash(channelId, state);
84+
const packedState = getPackedState(channelId, state);
8585

86-
return signRawECDSAMessage(stateHash, this.sessionKey);
86+
return signRawECDSAMessage(packedState, this.sessionKey);
8787
}
8888

8989
async signRawMessage(message: Hex): Promise<Hex> {

sdk/src/rpc/api.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Address, Hex, keccak256, stringToBytes, WalletClient } from 'viem';
1+
import { Address, Hex, keccak256, stringToBytes, toHex, WalletClient } from 'viem';
22
import { privateKeyToAccount } from 'viem/accounts';
33
import {
44
MessageSigner,
@@ -643,11 +643,9 @@ export function createEIP712AuthMessageSigner(
643643
export function createECDSAMessageSigner(privateKey: Hex): MessageSigner {
644644
return async (payload: RequestData | ResponsePayload): Promise<Hex> => {
645645
try {
646-
const messageBytes = keccak256(
647-
stringToBytes(JSON.stringify(payload, (_, v) => (typeof v === 'bigint' ? v.toString() : v))),
648-
);
646+
const message = toHex(JSON.stringify(payload, (_, v) => (typeof v === 'bigint' ? v.toString() : v)));
649647

650-
return signRawECDSAMessage(messageBytes, privateKey);
648+
return signRawECDSAMessage(message, privateKey);
651649
} catch (error) {
652650
console.error('ECDSA signing failed:', error);
653651
throw new Error(`ECDSA signing failed: ${error}`);

sdk/src/utils/sign.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { Hex } from 'viem';
1+
import { Hex, keccak256 } from 'viem';
22
import { privateKeyToAccount } from 'viem/accounts';
33

44
export const signRawECDSAMessage = async (message: Hex, privateKey: Hex): Promise<Hex> => {
5-
const flatSignature = await privateKeyToAccount(privateKey).sign({ hash: message });
5+
const hash = keccak256(message);
6+
const flatSignature = await privateKeyToAccount(privateKey).sign({ hash });
67

78
return flatSignature;
89
};

sdk/test/unit/client/state.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('_prepareAndSignInitialState', () => {
2525
const adjudicatorAddress = '0xADJ' as Hex;
2626
const challengeDuration = BigInt(123);
2727
const stateSigner = {
28-
getAddress: jest.fn(async () => '0xOWNER' as Hex),
28+
getAddress: jest.fn(() => '0xOWNER' as Hex),
2929
signState: jest.fn(async (_1: Hex, _2: State) => 'accSig'),
3030
signRawMessage: jest.fn(async (_: Hex) => 'accSig'),
3131
};

0 commit comments

Comments
 (0)