UNPKG

@reservoir0x/relay-kit-ui

Version:

Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.

41 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sha256 = void 0; const sha2_js_1 = require("@noble/hashes/sha2.js"); function normalizeAndStringify(obj) { const replacer = (_key, value) => { if (typeof value === 'bigint') return value.toString(); if (typeof value === 'undefined') return null; if (typeof value === 'object' && value !== null && 'toString' in value && typeof value.toString === 'function') { return value.toString(); } return value; }; const sortObject = (obj) => { if (obj === null || typeof obj !== 'object') { return obj; } if (Array.isArray(obj)) { return obj.map(sortObject); } const sortedEntries = Object.entries(obj) .sort(([keyA], [keyB]) => keyA.localeCompare(keyB)) .map(([key, value]) => [key, sortObject(value)]); return sortedEntries; }; const sorted = sortObject(obj); return JSON.stringify(sorted, replacer); } function sha256(params) { const str = normalizeAndStringify(params); const bytes = new TextEncoder().encode(str); const hash = (0, sha2_js_1.sha256)(bytes); return [...hash].map((b) => Number(b).toString(16).padStart(2, '0')).join(''); } exports.sha256 = sha256; //# sourceMappingURL=hashing.js.map