Bytes utility functions for converting, validating, and manipulating binary data in Ethereum applications.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Core conversion functions for transforming between different binary data representations including bytes arrays, hex strings, numbers, and objects with hex conversion capabilities.
Converts various input formats to a Uint8Array, the standard bytes representation.
/**
* Convert BytesLike, Hexable, or number to Uint8Array
* @param value - Value to convert (BytesLike, Hexable, or number)
* @param options - Optional conversion options
* @returns Uint8Array representation of the input
*/
function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array;Usage Examples:
import { arrayify } from "@ethersproject/bytes";
// Convert hex string to bytes
const fromHex = arrayify("0x1234abcd");
// Result: Uint8Array([0x12, 0x34, 0xab, 0xcd])
// Convert number to bytes (big-endian)
const fromNumber = arrayify(0x1234);
// Result: Uint8Array([0x12, 0x34])
// Convert existing bytes array
const fromBytes = arrayify([18, 52, 171, 205]);
// Result: Uint8Array([18, 52, 171, 205])
// With options - allow missing 0x prefix
const withOptions = arrayify("1234", { allowMissingPrefix: true });
// Result: Uint8Array([0x12, 0x34])
// Handle odd-length hex with padding
const oddHex = arrayify("0x123", { hexPad: "left" });
// Result: Uint8Array([0x01, 0x23]) - padded left
const oddHexRight = arrayify("0x123", { hexPad: "right" });
// Result: Uint8Array([0x12, 0x30]) - padded rightConverts various input formats to a hexadecimal string representation.
/**
* Convert BytesLike, Hexable, number, or bigint to hex string
* @param value - Value to convert
* @param options - Optional conversion options
* @returns Hex string representation (always prefixed with "0x")
*/
function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string;Usage Examples:
import { hexlify } from "@ethersproject/bytes";
// Convert bytes to hex string
const fromBytes = hexlify([18, 52, 171, 205]);
// Result: "0x1234abcd"
// Convert number to hex
const fromNumber = hexlify(4660);
// Result: "0x1234"
// Convert bigint to hex
const fromBigInt = hexlify(123456789012345678901234567890n);
// Result: "0x18ee90ff6c373e0ee4e3f0ad2" (or similar large hex)
// Convert existing hex string (normalizes format)
const fromHex = hexlify("0x1234ABCD");
// Result: "0x1234abcd" - normalized to lowercase
// With options - allow missing 0x prefix
const withOptions = hexlify("1234", { allowMissingPrefix: true });
// Result: "0x1234"
// Handle odd-length hex with padding
const oddHex = hexlify("0x123", { hexPad: "left" });
// Result: "0x0123" - padded leftinterface DataOptions {
/** Allow hex strings without "0x" prefix */
allowMissingPrefix?: boolean;
/** Padding direction for odd-length hex strings */
hexPad?: "left" | "right" | null;
}
interface Hexable {
/** Method to convert object to hex string */
toHexString(): string;
}