UNPKG

@etherspot/prime-sdk

Version:

Etherspot Prime (Account Abstraction) SDK

43 lines (42 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IsBytesLike = void 0; const ethers_1 = require("ethers"); const class_validator_1 = require("class-validator"); function IsBytesLike(options = {}) { return (object, propertyName) => { (0, class_validator_1.registerDecorator)({ propertyName, options: Object.assign({ message: `${propertyName} must be bytes like` }, options), name: 'IsBytesLike', target: object.constructor, constraints: [], validator: { validate(value) { let result = false; try { if (value) { switch (typeof value) { case 'string': if (options.acceptText) { result = true; } else { result = ethers_1.utils.isHexString(value) && value.length % 2 === 0; } break; case 'object': result = Array.isArray(value) && value.every((value) => typeof value === 'number'); break; } } } catch (err) { } return result; }, }, }); }; } exports.IsBytesLike = IsBytesLike;