mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 20:39:08 +01:00
4fef2b7443
* Add MAX_SAFE_CHAIN_ID constant * Add isSafeChainId to shared utils module * Move isPrefixedFormattedHexString to shared utils module * Validate custom RPC chain IDs in network controller * Update some network controller error messages. * Add isSafeChainId validation to UI
31 lines
938 B
JavaScript
31 lines
938 B
JavaScript
import { MAX_SAFE_CHAIN_ID } from '../constants/network'
|
|
|
|
/**
|
|
* Checks whether the given number primitive chain ID is safe.
|
|
* Because some cryptographic libraries we use expect the chain ID to be a
|
|
* number primitive, it must not exceed a certain size.
|
|
*
|
|
* @param {number} chainId - The chain ID to check for safety.
|
|
* @returns {boolean} Whether the given chain ID is safe.
|
|
*/
|
|
export function isSafeChainId(chainId) {
|
|
return (
|
|
Number.isSafeInteger(chainId) && chainId > 0 && chainId <= MAX_SAFE_CHAIN_ID
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Checks whether the given value is a 0x-prefixed, non-zero, non-zero-padded,
|
|
* hexadecimal string.
|
|
*
|
|
* @param {any} value - The value to check.
|
|
* @returns {boolean} True if the value is a correctly formatted hex string,
|
|
* false otherwise.
|
|
*/
|
|
export function isPrefixedFormattedHexString(value) {
|
|
if (typeof value !== 'string') {
|
|
return false
|
|
}
|
|
return /^0x[1-9a-f]+[0-9a-f]*$/iu.test(value)
|
|
}
|