I'm encoding a message using ethers' solidityPackedKeccak256()
const encodedMessage = ethers.solidityPackedKeccak256(
["address", "uint256", "uint256"],
[deployer.address, TOKEN_ID, NONCE],
);
I'm signing this message using -
web3
const { signature: signatureWeb3 } = web3.eth.accounts.sign( encodedMessage, HARDHAT_PRIVATE_KEY, );
ethers
const signatureEthers = await deployer.signMessage(encodedMessage);
Their outputs are -
web3 = 0xc5b8d6ae2203e7f90257162289e552fac04b5708d4fe6b4360e86c2855db059314357f66bf89a2f72858980aa390607598defcb5382fea437ac4da3f725a9b231b
ethers = 0xaf7cb82eee6050746f299888ccc2a888d6801bff3701975ed5a73c73238b12a624fa575c9f8222ecaed25d2071c108477c84ac79572ceedf226f7a010f24511d1c
The message for both functions is same. So Why are both signatures different? How do I get the same result from ethers as web3's?