UNPKG

@unisat/wallet-utils

Version:
24 lines (23 loc) 1.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyMessage = void 0; const bitcore_lib_1 = __importDefault(require("bitcore-lib")); function verifyMessage(publicKey, text, sig) { const message = new bitcore_lib_1.default.Message(text); var signature = bitcore_lib_1.default.crypto.Signature.fromCompact(Buffer.from(sig, "base64")); var hash = message.magicHash(); // recover the public key var ecdsa = new bitcore_lib_1.default.crypto.ECDSA(); ecdsa.hashbuf = hash; ecdsa.sig = signature; const pubkeyInSig = ecdsa.toPublicKey(); const pubkeyInSigString = new bitcore_lib_1.default.PublicKey(Object.assign({}, pubkeyInSig.toObject(), { compressed: true })).toString(); if (pubkeyInSigString != publicKey) { return false; } return bitcore_lib_1.default.crypto.ECDSA.verify(hash, signature, pubkeyInSig); } exports.verifyMessage = verifyMessage;