@holographxyz/cli
Version:
Holograph operator CLI
22 lines (21 loc) • 922 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.strictECDSA = void 0;
const ethers_1 = require("ethers");
const strictECDSA = function (signature) {
const validator = ethers_1.BigNumber.from('0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0');
if (Number.parseInt(signature.v, 16) < 27) {
signature.v = '0x' + (27).toString(16).padStart(2, '0');
}
if (ethers_1.BigNumber.from(signature.s).gt(validator)) {
// we have an issue
signature.s = ethers_1.BigNumber.from('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141')
.sub(ethers_1.BigNumber.from(signature.s))
.toHexString();
let v = Number.parseInt(signature.v, 16);
v = v === 27 ? 28 : 27;
signature.v = '0x' + v.toString(16).padStart(2, '0');
}
return signature;
};
exports.strictECDSA = strictECDSA;