@dioxide-js/silas
Version:
RPC utility for Silas
64 lines (61 loc) • 1.84 kB
JavaScript
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