xcm-lib-zkverify
Version:
XCM asset teleportation and remote EVM calls for ZKVerify
38 lines • 1.43 kB
JavaScript
;
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