UNPKG

@reservoir0x/relay-kit-ui

Version:

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

38 lines 1.37 kB
import { sha256 as _sha256 } from '@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); } // Convert object to array of [key, value] pairs and sort by key 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); } export function sha256(params) { const str = normalizeAndStringify(params); const bytes = new TextEncoder().encode(str); const hash = _sha256(bytes); return [...hash].map((b) => Number(b).toString(16).padStart(2, '0')).join(''); } //# sourceMappingURL=hashing.js.map