Don't hash initial message when making EIP-191 signature

This commit is contained in:
silverpill 2022-04-22 21:27:50 +00:00
parent a97456d77a
commit bffe3bbe7d

View file

@ -47,10 +47,10 @@ pub enum SignatureError {
} }
fn prepare_message(message: &[u8]) -> [u8; 32] { fn prepare_message(message: &[u8]) -> [u8; 32] {
let message_hash = keccak256(message);
let eip_191_message = [ let eip_191_message = [
"\x19Ethereum Signed Message:\n32".as_bytes(), "\x19Ethereum Signed Message:\n".as_bytes(),
&message_hash, message.len().to_string().as_bytes(),
&message,
].concat(); ].concat();
let eip_191_message_hash = keccak256(&eip_191_message); let eip_191_message_hash = keccak256(&eip_191_message);
eip_191_message_hash eip_191_message_hash
@ -58,7 +58,7 @@ fn prepare_message(message: &[u8]) -> [u8; 32] {
/// Create EIP-191 signature /// Create EIP-191 signature
/// https://eips.ethereum.org/EIPS/eip-191 /// https://eips.ethereum.org/EIPS/eip-191
pub fn sign_message( fn sign_message(
signing_key: &str, signing_key: &str,
message: &[u8], message: &[u8],
) -> Result<SignatureData, SignatureError> { ) -> Result<SignatureData, SignatureError> {
@ -119,7 +119,8 @@ pub fn sign_contract_call(
for arg in method_args { for arg in method_args {
message.extend(arg.as_ref().as_ref()); message.extend(arg.as_ref().as_ref());
}; };
let signature = sign_message(signing_key, &message)?; let message_hash = keccak256(&message);
let signature = sign_message(signing_key, &message_hash)?;
Ok(signature) Ok(signature)
} }