@govtechsg/open-attestation
Version:
25 lines (24 loc) • 982 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sign = exports.name = void 0;
var sign_1 = require("../../../@types/sign");
var bytes_1 = require("@ethersproject/bytes");
var wallet_1 = require("@ethersproject/wallet");
exports.name = "Secp256k1VerificationKey2018";
var sign = function (message, keyOrSigner, options) {
if (options === void 0) { options = {}; }
var signer;
if (sign_1.SigningKey.guard(keyOrSigner)) {
var wallet = new wallet_1.Wallet(keyOrSigner.private);
if (!keyOrSigner.public.toLowerCase().includes(wallet.address.toLowerCase())) {
throw new Error("Private key is wrong for ".concat(keyOrSigner.public));
}
signer = wallet;
}
else {
signer = keyOrSigner;
}
// see https://docs.ethers.org/v6/migrating/ under hex-conversion
return signer.signMessage(options.signAsString ? message : (0, bytes_1.arrayify)(message));
};
exports.sign = sign;