UNPKG

@toruslabs/metadata-helpers

Version:
75 lines (71 loc) 2.35 kB
'use strict'; var modular_js = require('@noble/curves/abstract/modular.js'); var secp256k1_js = require('@noble/curves/secp256k1.js'); var utils_js = require('@noble/curves/utils.js'); var sha2_js = require('@noble/hashes/sha2.js'); var sha3_js = require('@noble/hashes/sha3.js'); function toEthereumSignature(recoveredSig) { const ethSig = new Uint8Array(65); ethSig.set(recoveredSig.slice(1, 65), 0); // r + s ethSig[64] = recoveredSig[0]; // v at end return ethSig; } function getPublicKeyCoords(privateKeyBytes) { const pubKeyUncompressed = secp256k1_js.secp256k1.getPublicKey(privateKeyBytes, false); const x = pubKeyUncompressed.slice(1, 33); const y = pubKeyUncompressed.slice(33, 65); return { x, y }; } function coordsToPublicKey(x, y) { const pubKey = new Uint8Array(65); pubKey[0] = 0x04; // uncompressed prefix pubKey.set(x, 1); pubKey.set(y, 33); return pubKey; } Object.defineProperty(exports, "invert", { enumerable: true, get: function () { return modular_js.invert; } }); Object.defineProperty(exports, "mod", { enumerable: true, get: function () { return modular_js.mod; } }); Object.defineProperty(exports, "secp256k1", { enumerable: true, get: function () { return secp256k1_js.secp256k1; } }); Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return utils_js.bytesToHex; } }); Object.defineProperty(exports, "bytesToNumberBE", { enumerable: true, get: function () { return utils_js.bytesToNumberBE; } }); Object.defineProperty(exports, "bytesToNumberLE", { enumerable: true, get: function () { return utils_js.bytesToNumberLE; } }); Object.defineProperty(exports, "numberToBytesBE", { enumerable: true, get: function () { return utils_js.numberToBytesBE; } }); Object.defineProperty(exports, "numberToHexUnpadded", { enumerable: true, get: function () { return utils_js.numberToHexUnpadded; } }); Object.defineProperty(exports, "sha512", { enumerable: true, get: function () { return sha2_js.sha512; } }); Object.defineProperty(exports, "keccak_256", { enumerable: true, get: function () { return sha3_js.keccak_256; } }); exports.coordsToPublicKey = coordsToPublicKey; exports.getPublicKeyCoords = getPublicKeyCoords; exports.toEthereumSignature = toEthereumSignature;