Skip to main content
Module

x/polkadot/util/is/hex.ts

Package publishing for deno.land/x/polkadot
Go to Latest
File

import type { HexString } from '../types.ts';
export const REGEX_HEX_PREFIXED = /^0x[\da-fA-F]+$/;
export const REGEX_HEX_NOPREFIX = /^[\da-fA-F]+$/;
/** * @name isHex * @summary Tests for a hex string. * @description * Checks to see if the input value is a `0x` prefixed hex string. Optionally (`bitLength` !== -1) checks to see if the bitLength is correct. * @example * <BR> * * ```javascript * import { isHex } from 'https://deno.land/x/polkadot@0.2.40/util/mod.ts'; * * isHex('0x1234'); // => true * isHex('0x1234', 8); // => false * ``` */export function isHex (value: unknown, bitLength = -1, ignoreLength?: boolean): value is HexString { return ( typeof value === 'string' && ( value === '0x' || REGEX_HEX_PREFIXED.test(value) ) ) && ( bitLength === -1 ? (ignoreLength || (value.length % 2 === 0)) : (value.length === (2 + Math.ceil(bitLength / 4))) );}