UNPKG

@cronstamp/clientlib

Version:

Client library for cronstamp, a blockchain-based document timestamping and verification service.

45 lines 1.67 kB
import { ErrorTypes, ProcessError } from '../lifecycle/manager.js'; /** * Convert hex string to Uint8Array * Accepts both lower and upper case hex strings * @param hexString */ export function fromHexString(hexString) { let splitBytes = hexString.match(/.{1,2}/g); // greedy match blocks of characters => one byte each if (splitBytes == null) { throw new ProcessError('Invalid hex string procided: ' + hexString, ErrorTypes.DOCUMENT_ALTERED); } return Uint8Array.from(splitBytes.map((byte) => parseInt(byte, 16))); // to int } /** * Converts Uint8Array to hex string, with upper case letters * @param byteArray */ export function toHexString(byteArray) { return byteArray .reduce((str, byte) => str + byte .toString(16) // convert each byte to hex .padStart(2, '0'), // each byte is filled with leading zero, to be exactly two characters '') .toUpperCase(); } /** * Convert base64 encoded string to Uint8Array * source: https://developer.mozilla.org/en-US/docs/Glossary/Base64#converting_arbitrary_binary_data * @param base64String */ export function fromBase64String(base64String) { const binString = atob(base64String); return Uint8Array.from(binString, (m) => m.codePointAt(0)); } /** * Convert Uint8Array to base64 encoded string * source: https://developer.mozilla.org/en-US/docs/Glossary/Base64#converting_arbitrary_binary_data * @param byteArray */ export function toBase64String(byteArray) { const binString = Array.from(byteArray, (byte) => String.fromCodePoint(byte)).join(''); return btoa(binString); } //# sourceMappingURL=base-convert.js.map