use ethers::{types::H256, utils::keccak256};
pub fn hash_message<T: AsRef<[u8]>>(message: T) -> H256 {
const PREFIX: &str = "\x19Ethereum Signed Message:\n";
let message = message.as_ref();
let len = message.len();
let len_string = len.to_string();
let mut eth_message = Vec::with_capacity(PREFIX.len() + len_string.len() + len);
eth_message.extend_from_slice(PREFIX.as_bytes());
eth_message.extend_from_slice(len_string.as_bytes());
eth_message.extend_from_slice(message);
H256(keccak256(ð_message))
}