UNPKG

xcm-lib-zkverify

Version:

XCM asset teleportation and remote EVM calls for ZKVerify

38 lines 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateEvmAddress = validateEvmAddress; exports.validatePrivateKey = validatePrivateKey; exports.isValidEvmAddress = isValidEvmAddress; const ethers_1 = require("ethers"); function validateEvmAddress(address, fieldName = 'EVM address') { if (!address) { throw new Error(`${fieldName} is required`); } if (!(0, ethers_1.isAddress)(address)) { throw new Error(`Invalid ${fieldName.toLowerCase()} format: ${address}. Address must be a valid Ethereum address.`); } if (address.length !== 42) { throw new Error(`Invalid ${fieldName.toLowerCase()} length: ${address}. Address must be exactly 42 characters including 0x prefix.`); } } function validatePrivateKey(privateKey, fieldName = 'Private key') { if (!privateKey) { throw new Error(`${fieldName} is required`); } if (!/^[0-9a-fA-F]+$/.test(privateKey)) { throw new Error(`${fieldName} must be a valid hex string (got: ${privateKey.substring(0, 8)}...)`); } if (privateKey.length !== 64) { throw new Error(`${fieldName} must be exactly 32 bytes (64 hex characters), got ${privateKey.length} characters`); } } function isValidEvmAddress(address) { try { validateEvmAddress(address); return true; } catch { return false; } } //# sourceMappingURL=validation.js.map