UNPKG

@dioxide-js/silas

Version:

RPC utility for Silas

64 lines (61 loc) 1.84 kB
import { dataview } from '../node_modules/@dioxide-js/misc/dist/misc.es5.mjs'; import isBase64 from '../_virtual/is-base64.mjs'; import { s as sha256Exports } from '../_virtual/sha256.mjs'; import base32Encode from '../_virtual/index2.mjs'; function concat(...args) { let length = 0; const units = args.map((arg) => { return new Uint8Array(arg); }); units.forEach((item) => { length += item.length; }); const mergedArray = new Uint8Array(length); let offset = 0; units.forEach((item) => { mergedArray.set(item, offset); offset += item.length; }); return mergedArray; } function stringToUint8Array(message) { return new TextEncoder().encode(message); } function uint8ArrayToString(content) { return new TextDecoder('utf-8').decode(content); } function areUint8ArraysEqual(arr1, arr2) { if (arr1.length !== arr2.length) { return false; } for (let i = 0; i < arr1.length; i++) { if (arr1[i] !== arr2[i]) { return false; } } return true; } function isHex(hex) { hex = hex.replace(/^0x/, ''); return /^[0-9a-fA-F]+$/.test(hex); } function toUint8Array(s) { if (s instanceof Uint8Array) { return s; } if (s.startsWith('0x') && isHex(s)) { s = s.replace(/^0x/, ''); return dataview.hexToU8(s); } if (isBase64(s)) { return dataview.base64ToU8(s); } throw `illegal input, expect base64-string, base16-string or Uint8Array`; } function toProofKeyHash(message) { const hex = sha256Exports.sha256(message); const msg = dataview.hexToU8(hex); return base32Encode(msg, 'Crockford'); } export { areUint8ArraysEqual, concat, isHex, stringToUint8Array, toProofKeyHash, toUint8Array, uint8ArrayToString }; //# sourceMappingURL=buffer.mjs.map