Don't hash initial message when making EIP-191 signature
This commit is contained in:
parent
a97456d77a
commit
bffe3bbe7d
1 changed files with 6 additions and 5 deletions
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue