import bs58 from 'bs58'; const hex: string[] = []; for (var i = 0; i < 256; i++) { hex[i] = (i < 16 ? '0' : '') + (i).toString(16); } export function uuidV4(): string { const r = crypto.getRandomValues(new Uint8Array(16)); r[6] = r[6] & 0x0f | 0x40; r[8] = r[8] & 0x3f | 0x80; return ( hex[r[0]] + hex[r[1]] + hex[r[2]] + hex[r[3]] + "-" + hex[r[4]] + hex[r[5]] + "-" + hex[r[6]] + hex[r[7]] + "-" + hex[r[8]] + hex[r[9]] + "-" + hex[r[10]] + hex[r[11]] + hex[r[12]] + hex[r[13]] + hex[r[14]] + hex[r[15]] ); } export function toUTF8Bytes(str: string): number[] { var utf8 = unescape(encodeURIComponent(str)); var arr: number[] = []; for (var i = 0; i < utf8.length; i++) { arr.push(utf8.charCodeAt(i)); } return arr } export function base58UUID(): string { const uuid = uuidV4(); return bs58.encode(toUTF8Bytes(uuid)); }