UNPKG

@unisat/wallet-utils

Version:
19 lines (18 loc) 673 B
import bitcore from "bitcore-lib"; export function verifyMessage(publicKey, text, sig) { var message = new bitcore.Message(text); var signature = bitcore.crypto.Signature.fromCompact(Buffer.from(sig, "base64")); var hash = message.magicHash(); // recover the public key var ecdsa = new bitcore.crypto.ECDSA(); ecdsa.hashbuf = hash; ecdsa.sig = signature; var pubkeyInSig = ecdsa.toPublicKey(); var pubkeyInSigString = new bitcore.PublicKey(Object.assign({}, pubkeyInSig.toObject(), { compressed: true })).toString(); if (pubkeyInSigString != publicKey) { return false; } return bitcore.crypto.ECDSA.verify(hash, signature, pubkeyInSig); }