UNPKG

@chronicleprotocol/api-auth

Version:

The API authenticaion library for Chronicle Protocol

10 lines (9 loc) 548 B
import { ecrecover, pubToAddress } from "@ethereumjs/util"; import { bytesToHex, getAddress, hashMessage, hexToBytes, parseSignature, } from "viem"; export default function verifyMessage({ address, message, signature, }) { const { r, s, v } = parseSignature(signature); const hashedMessage = hashMessage(message); const publicKey = ecrecover(hexToBytes(hashedMessage), v, hexToBytes(r), hexToBytes(s)); const recoveredAddress = getAddress(bytesToHex(pubToAddress(publicKey))); return recoveredAddress === getAddress(address); }