@govtechsg/open-attestation
Version:
21 lines (20 loc) • 833 B
JavaScript
import { SigningKey } from "../../../@types/sign";
import { arrayify } from "@ethersproject/bytes";
import { Wallet } from "@ethersproject/wallet";
export var name = "Secp256k1VerificationKey2018";
export var sign = function (message, keyOrSigner, options) {
if (options === void 0) { options = {}; }
var signer;
if (SigningKey.guard(keyOrSigner)) {
var wallet = new 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 : arrayify(message));
};