Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
@walletconnect/encoding
Advanced tools
@walletconnect/encoding is a utility library for encoding and decoding data in various formats. It is commonly used in blockchain and cryptocurrency applications to handle data transformations.
Hex Encoding
This feature allows you to convert a hexadecimal string to a byte array and vice versa. It is useful for handling data in hexadecimal format, which is common in blockchain applications.
const { hexToArray, arrayToHex } = require('@walletconnect/encoding');
const hexString = '0x48656c6c6f';
const byteArray = hexToArray(hexString);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newHexString = arrayToHex(byteArray);
console.log(newHexString); // '0x48656c6c6f'
Base64 Encoding
This feature allows you to convert a Base64 string to a byte array and vice versa. Base64 encoding is often used for data serialization and transmission.
const { base64ToArray, arrayToBase64 } = require('@walletconnect/encoding');
const base64String = 'SGVsbG8=';
const byteArray = base64ToArray(base64String);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newBase64String = arrayToBase64(byteArray);
console.log(newBase64String); // 'SGVsbG8='
UTF-8 Encoding
This feature allows you to convert a UTF-8 string to a byte array and vice versa. UTF-8 is a standard encoding for text data.
const { utf8ToArray, arrayToUtf8 } = require('@walletconnect/encoding');
const utf8String = 'Hello';
const byteArray = utf8ToArray(utf8String);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newUtf8String = arrayToUtf8(byteArray);
console.log(newUtf8String); // 'Hello'
base64-js provides utilities for encoding and decoding data in Base64 format. It is similar to @walletconnect/encoding's Base64 functionality but does not support other encoding formats like hex or UTF-8.
The buffer package from Node.js provides a way to handle binary data. It supports various encoding formats including hex, Base64, and UTF-8. It is more comprehensive compared to @walletconnect/encoding but also more complex.
text-encoding is a polyfill for the TextEncoder and TextDecoder APIs, which provide methods for encoding and decoding text in various formats like UTF-8. It is focused on text encoding and does not support hex or Base64.
Byte encoding utils
// -- Buffer --------------------------------------------- //
function bufferToUtf8(buf: Buffer): string;
function bufferToHex(buf: Buffer, prefixed?: boolean): string;
function bufferToArray(buf: Buffer): Uint8Array;
function bufferToNumber(buf: Buffer): number;
function bufferToBinary(buf: Buffer): string;
// -- Utf8 ----------------------------------------------- //
function utf8ToBuffer(utf8: string): Buffer;
function utf8ToHex(utf8: string, prefixed?: boolean): string;
function utf8ToArray(utf8: string): Uint8Array;
function utf8ToNumber(utf8: string): number;
function utf8ToBinary(utf8: string): string;
// -- Hex ------------------------------------------------ //
function hexToBuffer(hex: string): Buffer;
function hexToUtf8(hex: string): string;
function hexToArray(hex: string): Uint8Array;
function hexToNumber(hex: string): number;
function hexToBinary(hex: string): string;
// -- Uint8Array ----------------------------------------- //
function arrayToBuffer(arr: Uint8Array): Buffer;
function arrayToUtf8(arr: Uint8Array): string;
function arrayToHex(arr: Uint8Array, prefixed?: boolean): string;
function arrayToNumber(arr: Uint8Array): number;
function arrayToBinary(arr: Uint8Array): string;
// -- Number ---------------------------------------- //
function numberToBuffer(num: number): Buffer;
function numberToUtf8(num: number): string;
function numberToHex(num: number, prefixed?: boolean): string;
function numberToArray(num: number): Uint8Array;
function numberToBinary(num: number): string;
// -- Binary ----------------------------------------------- //
function binaryToBuffer(bin: string): Buffer;
function binaryToArray(bin: string): Uint8Array;
function binaryToHex(bin: string | string, prefixed?: boolean): string;
function binaryToUtf8(bin: string): string;
function binaryToNumber(bin: string): number;
// -- Validators ----------------------------------------- //
function isBinaryString(str: any): boolean;
function isHexString(str: any, length?: number): boolean;
function isBuffer(val: any): boolean;
function isTypedArray(val: any): boolean;
function isArrayBuffer(val: any): boolean;
function getType(val: any);
function getEncoding(str: string);
// -- Misc ----------------------------------------------- //
function concatBuffers(...args: Buffer[]): Buffer;
function concatArrays(...args: Uint8Array[]): Uint8Array;
function trimLeft(data: Buffer, length: number): Buffer;
function trimRight(data: Buffer, length: number): Buffer;
function calcByteLength(length: number, byteSize: number): number;
function splitBytes(str: string, byteSize: number): string[];
function sanitizeBytes(str: string, byteSize: number, padding: string): string;
function swapBytes(str: string): string;
function swapHex(str: string): string;
function padLeft(str: string, length: number, padding?: string): string;
function padRight(str: string, length: number, padding?: string): string;
function removeHexPrefix(hex: string): string;
function addHexPrefix(hex: string): string;
function sanitizeHex(hex: string): string;
function removeHexLeadingZeros(hex: string): string;
FAQs
Byte encoding utils
The npm package @walletconnect/encoding receives a total of 97,481 weekly downloads. As such, @walletconnect/encoding popularity was classified as popular.
We found that @walletconnect/encoding demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.