UNPKG

@holographxyz/cli

Version:
22 lines (21 loc) 922 B
"use strict"; 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;