1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.signatureRsvToVrs = exports.signatureVrsToRsv = exports.parseRecoverableSignatureVrs = void 0;
|
4 | const utils_1 = require("./utils");
|
5 | const COORDINATE_BYTES = 32;
|
6 | function parseRecoverableSignatureVrs(signature) {
|
7 | if (signature.length < COORDINATE_BYTES * 2 * 2 + 1) {
|
8 | throw new Error('Invalid signature');
|
9 | }
|
10 | const recoveryIdHex = signature.slice(0, 2);
|
11 | const r = signature.slice(2, 2 + COORDINATE_BYTES * 2);
|
12 | const s = signature.slice(2 + COORDINATE_BYTES * 2);
|
13 | return {
|
14 | recoveryId: (0, utils_1.hexToInt)(recoveryIdHex),
|
15 | r,
|
16 | s,
|
17 | };
|
18 | }
|
19 | exports.parseRecoverableSignatureVrs = parseRecoverableSignatureVrs;
|
20 | function signatureVrsToRsv(signature) {
|
21 | return signature.slice(2) + signature.slice(0, 2);
|
22 | }
|
23 | exports.signatureVrsToRsv = signatureVrsToRsv;
|
24 | function signatureRsvToVrs(signature) {
|
25 | return signature.slice(-2) + signature.slice(0, -2);
|
26 | }
|
27 | exports.signatureRsvToVrs = signatureRsvToVrs;
|
28 |
|
\ | No newline at end of file |