"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.crypto = exports.utf8ToBytes = exports.createView = exports.concatBytes = exports.toHex = exports.bytesToHex = exports.assertBytes = exports.assertBool = void 0; exports.bytesToUtf8 = bytesToUtf8; exports.hexToBytes = hexToBytes; exports.equalsBytes = equalsBytes; exports.wrapHash = wrapHash; const _assert_1 = __importDefault(require("@noble/hashes/_assert")); const utils_1 = require("@noble/hashes/utils"); const assertBool = _assert_1.default.bool; exports.assertBool = assertBool; const assertBytes = _assert_1.default.bytes; exports.assertBytes = assertBytes; var utils_2 = require("@noble/hashes/utils"); Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return utils_2.bytesToHex; } }); Object.defineProperty(exports, "toHex", { enumerable: true, get: function () { return utils_2.bytesToHex; } }); Object.defineProperty(exports, "concatBytes", { enumerable: true, get: function () { return utils_2.concatBytes; } }); Object.defineProperty(exports, "createView", { enumerable: true, get: function () { return utils_2.createView; } }); Object.defineProperty(exports, "utf8ToBytes", { enumerable: true, get: function () { return utils_2.utf8ToBytes; } }); // buf.toString('utf8') -> bytesToUtf8(buf) function bytesToUtf8(data) { if (!(data instanceof Uint8Array)) { throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof data}`); } return new TextDecoder().decode(data); } function hexToBytes(data) { const sliced = data.startsWith("0x") ? data.substring(2) : data; return (0, utils_1.hexToBytes)(sliced); } // buf.equals(buf2) -> equalsBytes(buf, buf2) function equalsBytes(a, b) { if (a.length !== b.length) { return false; } for (let i = 0; i < a.length; i++) { if (a[i] !== b[i]) { return false; } } return true; } // Internal utils function wrapHash(hash) { return (msg) => { _assert_1.default.bytes(msg); return hash(msg); }; } // TODO(v3): switch away from node crypto, remove this unnecessary variable. exports.crypto = (() => { const webCrypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : undefined; const nodeRequire = typeof module !== "undefined" && typeof module.require === "function" && module.require.bind(module); return { node: nodeRequire && !webCrypto ? nodeRequire("crypto") : undefined, web: webCrypto }; })();