eth-signature-verifier
Version:
Minimal Ethereum signature verifier supporting EIP-712, EIP-191, and eth_sign. No ethers.js or web3.js.
24 lines (23 loc) • 821 B
JavaScript
import { hashPersonalMessage, recoverAddress, hashTypedData } from './utils.js';
// Verifies an Ethereum signature created with personal_sign or eth_sign
export function verifyMessage(address, message, signature) {
try {
const msgHash = hashPersonalMessage(message);
const recovered = recoverAddress(msgHash, signature);
return address.toLowerCase() === recovered.toLowerCase();
}
catch {
return false;
}
}
// Verifies an EIP-712 typed data signature
export function verifyTypedData(address, signature, domain, types, value) {
try {
const digest = hashTypedData(domain, types, value);
const recovered = recoverAddress(digest, signature);
return address.toLowerCase() === recovered.toLowerCase();
}
catch {
return false;
}
}