UNPKG

@frak-labs/core-sdk

Version:

Core SDK of the Frak wallet, low level library to interact directly with the frak ecosystem.

30 lines (28 loc) 808 B
/** * Encode a buffer to a base64url encoded string * @param buffer The buffer to encode * @returns The encoded string */ export function base64urlEncode(buffer: Uint8Array): string { return btoa(Array.from(buffer, (b) => String.fromCharCode(b)).join("")) .replace(/\+/g, "-") .replace(/\//g, "_") .replace(/=+$/, ""); } /** * Decode a base64url encoded string * @param value The value to decode * @returns The decoded value */ export function base64urlDecode(value: string): Uint8Array { const m = value.length % 4; return Uint8Array.from( atob( value .replace(/-/g, "+") .replace(/_/g, "/") .padEnd(value.length + (m === 0 ? 0 : 4 - m), "=") ), (c) => c.charCodeAt(0) ); }