From 400296faf87d6c3f2a88c5be6185e8c91392be0d Mon Sep 17 00:00:00 2001 From: 846702994 <46328231+846702994@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:26:40 -0500 Subject: [PATCH] Address from pubKey Get the correct address from pubKey. --- precompile/src/simple.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/precompile/src/simple.rs b/precompile/src/simple.rs index 58a2912b..6297f0d2 100644 --- a/precompile/src/simple.rs +++ b/precompile/src/simple.rs @@ -39,8 +39,10 @@ impl PurePrecompile for ECRecover { let pubkey = try_some!(VerifyingKey::recover_from_prehash(&msg[..], &sig, recid) .map_err(|_| ExitException::Other("recover key failed".into()))); - let mut address = - H256::from_slice(Keccak256::digest(&pubkey.to_sec1_bytes()[..]).as_slice()); + let mut address = H256::from_slice( + Keccak256::digest(&pubkey.to_encoded_point(/* compress = */ false).as_bytes()[1..]) + .as_slice(), + ); address.0[0..12].copy_from_slice(&[0u8; 12]); (ExitSucceed::Returned.into(), address.0.to_vec())